import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';
import DutyInfo from './DutyInfo';
import DispatchInfo from './DispatchInfo';
import './index.css';
import WeatherInfo from "./WeatherInfo.tsx";

// 添加 Electron API 类型声明
declare global {
  interface Window {
    electronAPI?: {
      getAppInfo: () => Promise<{ version: string; name: string }>;
    };
  }
}

// 根据URL路径决定渲染哪个组件
const getComponent = () => {
  // 在 Electron 环境中，优先使用 hash 路由
  const hashPath = window.location.hash.slice(1); // 移除 # 符号
  const pathname = window.location.pathname;
  
  // 判断是否为 Electron 环境
  const isElectron = window.electronAPI !== undefined;
  
  // Electron 环境使用 hash 路由，浏览器环境使用 pathname
  const path = isElectron && hashPath ? hashPath : pathname;
  
  console.log('路由信息:', { isElectron, pathname, hashPath, selectedPath: path });
  
  switch (path) {
    case '/duty':
      return <DutyInfo />;
    case '/dispatch':
      return <DispatchInfo />;
    case '/weather':
      return <WeatherInfo />;
    case 'duty': // 支持 #duty 格式
      return <DutyInfo />;
    case 'dispatch': // 支持 #dispatch 格式
      return <DispatchInfo />;
    case 'weather': // 支持 #weather 格式
      return <WeatherInfo />;
    default:
      return <App />;
  }
};

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    {getComponent()}
  </StrictMode>
);
